package com.zxl.designpattern.behavioral.templatemethod;

/**
 * 战士角色创建器，继承抽象角色创建器
 */
public class WarriorCreator extends CharacterCreator {
    /**
     * 选择战士的种族，实现父类抽象方法
     */
    @Override
    public void selectRace() {
        System.out.println("战士种族");
    }
    
    /**
     * 分配战士的属性点，力量和体质优先
     */
    @Override
    public void assignStats() {
        System.out.println("分配力量和体力属性");
    }
    
    /**
     * 为战士装备初始武器和防具
     */
    @Override
    public void equipStartingGear() {
        System.out.println("初始武器长剑和布甲");
    }
    
    /**
     * 给予战士特殊物品，实现父类抽象方法
     */
    @Override
    public void giveSpecialItem() {
        System.out.println("分配2瓶低级蓝药水");
    }
    
    /**
     * 覆盖钩子方法，总是包含特殊物品
     * @return 总是返回true
     */
    @Override
    public boolean includeSpecialItem() {
        return true;
    }
}    